如何控制离散图例的显示顺序?
问题描述
如下图所示,我该如何控制列表型图例的显示顺序:

解决方案
对于大部分的图表来说,列表型图例的顺序是由数据中分组字段的顺序决定的,我们可以通过如下几种方法来实现:
- 直接调整数据的顺序
- 设置分组字段对应度量的 domain
- 如果图表的图例组件有提供相应配置的话,也可以直接对图例的数据进行操作
下面就介绍下在 VChart 上如何进行配置,VChart 即支持直接配置分组字段的 domain 也支持直接控制图例组件的数 据,你可以根据你自己的需要选择哪种方法。
- 设置分组字段对应度量的 domain
如下图所示,可以在 data 属性上配置对应字段的 domain 属性,同时配置 sortIndex 表示按照声明的 domain 属性进行排序,这样就可以控制图例的显示顺序了。
注意通过在数据上配置字段的 domain 它不仅会影响图例的显示顺序,也会影响数据的绘制顺序。

- 通过
legends.data属性,自定义显示顺序
另外也可以直接通过修改图例组件的顺序来达到目的,legends.data 是一个回调类型,会将图例的绘制顺序作为参数传递给用户,用户可以根据自己的需要进行顺序或者其他操作,但是需要注意返回的数据必须符合图例顺序的格式。
如果你只是简单想让图例顺序反转下,也可以直接开启 legends.reverse 属性即可。
